Random number generation has become an important part of modern technology with regard to secure communications, encryption schemes, robust data storage, and other technology areas. Many systems which rely upon random number generators actually employ what is known as pseudo-random number generators. Pseudo-random number generators (PRNGs), also known as deterministic random-number generators, produce numerical strings that approximate true randomness. Although these schemes are not truly random, they suffice for many applications in the realm of security, encryption, and the like. However, numbers generated by these PRNGs are still somewhat deterministic, and thus hardware-based random number generation circuitry has been developed.
Hardware random number generators, also referred to as true random number generator (TRNG), rely upon physical properties or processes which have naturally stochastic components. Random outputs produced from these hardware systems are much closer to truly randomized outputs. Thus, TRNG are employed in applications where higher security and less deterministic random numbers are desired.
Attempts at employing magnetic tunnel junction (MTJ) arrangements into hardware TRNGs have been undertaken. An MTJ operates using tunnel magnetoresistance (TMR), which is a magneto-resistive effect. MTJs typically consist of two ferromagnets separated by a thin insulator through which electrons can quantum-mechanically tunnel from one ferromagnet into the other. In the presence of thermal noise, a switching behavior of an MTJ due to flow of an input current can be observed to be stochastic in nature. However, variability in manufacturing and variability in stochastic behaviors among MTJs can place limits on how well these elements behave in TRNG systems. Moreover, random bitstreams can still require a lengthy timeframe to generate multi-digit random numbers, leading to slower overall TRNG processes for use in the various applications discussed above.
Overview
Random number generation circuits are presented which employ magnetic tunnel junction (MTJ) elements that can change magnetization state probabilistically in response to application of electrical pulses. Some implementations include pulse generators which apply perturbation sequences to the MTJ elements. The MTJ elements responsively produce randomized outputs related to changes in magnetization states. Probability compensators are included which monitor for deviations in measured probabilities in the randomized outputs from a target probability. The probability compensators make adjustments to the perturbation sequences to influence probabilistic changes in the magnetization states of the MTJ elements and bring the measured probabilities to within a predetermined deviation from the target probability.